export class QueryFiledUtil {
	/**
	 * @description 文本框搜索字段构建方法
	 * @param filedCode 搜索字段代码
	 * @param filedName 搜索字段名称
	 * @param show 默认是否显示
	 * */

	static setInputField = (filedCode: string, filedName: string, show = true) => {
		return { type: 'input', fieldCode: filedCode, placeholder: filedName, showDefault: show, showStatus: show }
	}

	/**
	 * @description 系统字典代码查询字段构建方法
	 * @param filedCode 搜索字段代码
	 * @param filedName 搜索字段名称
	 * @param options 数据选项数组
	 * @param multiple 是否多选
	 * @param show 默认是否显示
	 * */
	static setSelectField = (filedCode: string, filedName: string, options: any[], multiple = false, show = true) => {
		return {
			options,
			type: 'select',
			fieldCode: filedCode,
			placeholder: filedName,
			multiple,
			showDefault: show,
			showStatus: show,
		}
	}

	/**
	 * @description 构建方法日期区间查询字段构建方法
	 * @param filedCode 搜索字段代码
	 * @param filedName 搜索字段名称
	 * @param show 默认是否显示
	 * */
	static setDateRangeField = (filedCode: string, filedName: string, show = true) => {
		return {
			type: 'dateRange',
			fieldCode: filedCode,
			placeholder: filedName,
			showDefault: show,
			showStatus: show,
		}
	}

	/**
	 * @description 构建方法日期区间查询字段构建方法
	 * @param filedCode 搜索字段代码
	 * @param filedName 搜索字段名称
	 * @param show 默认是否显示
	 * */
	static setDateField = (filedCode: string, filedName: string, show = true) => {
		return {
			type: 'date',
			fieldCode: filedCode,
			placeholder: filedName,
			showDefault: show,
			showStatus: show,
		}
	}

	/**
	 * @description 业务模块字段搜索构建方法
	 * @param filedCode 搜索字段代码
	 * @param filedName 搜索字段名称
	 * @param multiple 是否多选 默认多选
	 * @param url 数据字典对应的地址
	 * @param show 默认是否显示
	 * */
	static setDictUrlField = (filedCode: string, filedName: string, url: string, multiple = false, show = true) => {
		return {
			type: 'dict',
			fieldCode: filedCode,
			placeholder: filedName,
			url,
			multiple,
			showDefault: show,
			showStatus: show,
		}
	}

	/**
	 * @description 系统字典代码查询字段构建方法
	 * @param filedCode 搜索字段代码
	 * @param filedName 搜索字段名称
	 * @param trueText 真条件字段
	 * @param falseText 假条件查询字段
	 * @param show 默认是否显示
	 * */
	static setBooleanField = (filedCode: string, filedName: string, trueText: string, falseText: string, show = true) => {
		const options = [
			{ label: trueText, value: 1 },
			{ label: falseText, value: 0 },
		]

		return {
			options,
			type: 'select',
			multiple: false,
			fieldCode: filedCode,
			placeholder: filedName,
			showDefault: show,
			showStatus: show,
		}
	}

	/**
	 * @description 系统字典代码查询字段构建方法
	 * @param filedCode 搜索字段代码
	 * @param filedName 搜索字段名称
	 * @param url
	 * @param multiple
	 * @param show 默认是否显示
	 * */
	static setTreeSelectField = (filedCode: string, filedName: string, url: string, multiple = false, show = true) => {
		return {
			type: 'treeSelect',
			fieldCode: filedCode,
			placeholder: filedName,
			url,
			multiple,
			showDefault: show,
			showStatus: show,
		}
	}
}
